%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%											%
%			Mit LuaLaTeX setzen, wegen Schriftart !!!!		%
%			Schriftart "Cantarell" von squirrelfonts.org		%				
%											%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[
				%twocolumn,
				twoside=false,
				headsepline,
				footsepline
				]{scrartcl} % scrreprt
\usepackage{../grubyware-style}
\usepackage{blindtext}
\begin{document}
	\pagenumbering{roman}	%roemische Ziffern
	\thispagestyle{scrplain}
	\titlehead{{\Large Fachhochschule Kaiserslautern 
		\hfill WS-2010/2011\\}
		Fachschaft Informatik und Mikrosystemtechnik\\
		Amerikastraße 1\\
		66482 Zweibrücken}
	\subject{Pflichtenheft}
	\title{Grubyware}
	\subtitle{Informatikprojekt Phase II}
	\author[]{Simon Barth} \author[]{Andreas Baur} \author[]{Sven Kuntz} \author[]{Roland Staud}
	\affil{}
	\publishers{Betreut durch Prof. Dr. Hettel}
	\maketitle
	\section*{Dokumentenversion}
	\begin{tabular}{|l|l|l|p{6.4cm}|}	%Versionstabelle
		\hline
		\textbf{Name} & \textbf{Version} & \textbf{Datum} & \textbf{Tätigkeiten}\\ \hline\hline
		Sven Kuntz & 0.1 & 18.12.2010 & initiale Erstellung\\ \hline
		Roland Staud & 0.1 & 18.12.2010 & Review\\ \hline
		Sven Kuntz & 0.2 & 18.12.2010 & kleinere Korrekturen\\ \hline
		Simon Barth & 0.2 & 18.12.2010 & Review\\ \hline
		Sven Kuntz & 0.3 & 02.01.2011 & Überarbeitung\\ \hline
		Andreas Baur & 0.3 & 09.01.2011 & Review \\ \hline
		Sven Kuntz & 0.4 & 22.01.2011 & Aktualisierung Projektstatus \\ \hline	
	\end{tabular}
	\newpage
	\thispagestyle{scrplain}
	\tableofcontents
	\pagestyle{scrheadings}
	\newpage
	\pagenumbering{arabic}	%arabische Ziffern
	\setcounter{page}{1}

	\section{Präambel}
	\subsection{Projektteam}
	Bei der Realisierung wird auf eine klare Rollenaufteilung innerhalb des Projektteams verzichtet. Alle Mitglieder des Teams werden 		entsprechend ihren Stärken, die in vergangenen Projekten bereits entsprechend identifiziert wurden, eingesetzt um ein bestmögliches Ergebnis zu erzielen.
	\minisec{}
	Das vierköpfige Projektteam setzt sich wie folgt zusammen:
		\begin{description}
			\item[Simon Barth]Angewandte Informatik, Schwerpunkt Technik, Semester 5
			\item[Roland Staud]Angewandte Informatik, Schwerpunkt Technik, Semester 5
			\item[Andreas Baur]Angewandte Informatik, Schwerpunkt Wirtschaft, Semester 5
			\item[Sven Kuntz]Angewandte Informatik, Schwerpunkt Wirtschaft, Semester 5
		\end{description}
	\subsection{Realisierung}
	Dieses Dokument stellt die Spezifikation für ein Projekt zur Realisierung einer Software im Rahmen des Studiums an der
	Fachhochschule Kaiserslautern, Standort Zweibrücken dar. Für die Realisierung steht der Zeitraum vom 06.12.2010 bis zum 07.02.2011
	zur Verfügung. Alle zu realisierenden Aspekte werden explizit in diesem Dokument aufgeführt. Im Gegenzug sind alle denkbaren
	Erweiterungsmöglichkeiten für das spätere Produkt, die nicht explizit aufgeführt werden, nicht Teil des Projektes.
	\minisec{}
	Dennoch hällt sich das Projektteam offen den Umfang der Realisierung zu erweitern, sofern es die zeitlichen Kapazitäten zulassen.

	\newpage
	\section{Planungs- und Fortschrittskontrolle}
		\subsection{Meilensteine}
			\subparagraph{Schaffen einer Projektbasis}Datum: 20.12.2010
				\begin{itemize}
					\item Einarbeitung in Ruby (on Rails)
					\item Schaffen einer gemeinsamen Plattform zur Entwicklung, Steuerung
					\item Festlegung des zu realisierenden Umfangs
					\item Generierung des Datenmodells
					\item Workshop - Kollaborative Implementierung eines End-To-End Szenarios zur Sicherstellung einer gemeinsamen
					Wissensbasis
				\end{itemize}
			\subparagraph{Impelmentierung}Datum: 17.01.2011
				\begin{itemize}
					\item Realisierung des definierten Funktionalitäten
					\item Gestaltung der Oberfläche
				\end{itemize}
			\subparagraph{Testphase}Datum: 31.01.2011
				\begin{itemize}
					\item Erstellung Testplan
					\item Quelltext-Refaktorisierung
					\item Quelltext-Dokumentation
					\item Beginn der Arbeiten am 'Tutorial'
				\end{itemize}
			\subparagraph{Produktevaluierung und -verbesserung}Datum 14.02.2011
				\begin{itemize}
					\item Durchführung der Benutzertests
					\item Abschluss des 'Tutorials' als Teil der Auslieferung
				\end{itemize}			
		\subsection{Graphische Darstellung des Projektstatus}
			\begin{figure}[h]
				\includegraphics{./GrubywareZeitstrahl.png}
				\caption{Projektstatus vom 23.01.2011}
				\label{Zeitstrahl}
			\end{figure}

	\newpage
	\section{Produktbeschreibung}
		\subsection{Übersicht}
		Das Produkt wird eine Web-Plattform zur Verwaltung und Steuerung von Softwareprojekten sein. Es soll den Nutzern ermöglichen
		innerhalb der selben Plattform ihre Tätigkeiten für eines oder mehrere Projekte zu erfassen und kollaborativ die Umsetzung
		ihrer Arbeitspakete zu verfolgen. Für jedes Projekt sollen die folgenden ''Tools'' zur Verfügung stehen:
			\subparagraph{Planung von Arbeitspaketen}
			Diese sollen sich in einzelne Arbeitsschritten planen und erfassen lassen. Hierzu soll es möglich sein, jedem Arbeitsschritt
			einen oder mehrere Bearbeiter zuzuteilen. Der Aufwand für jeden Arbeitsschritt kann im Vorfeld mit einem geplanten Zeitwert
			erfasst werden. Bei Fertigstellung kann der tatsächlich geleistete Aufwand ebenfalls erfasst werden.
			\subparagraph{Dateiablage} Es soll pro Projekt möglich sein einen Pool projektrelevanter Dokumente für alle Mitarbeiter
			zugänglich abzulegen. 
			\subparagraph{Erfassung von Defekten}
			Es soll eine Sicht angeboten werden, die es den Projektmitarbeitern ermöglicht entdeckte Fehler im jeweiligen Produkt des
			Projektes zu melden und zu Priorisieren. Bei der Erfassung einer Meldung soll ebenfalls ein Bearbeiter eingetragen, sowie
			sinnvolle Dateien angehängt werden können.
			\subparagraph{Diskussionsplattform}
			Es sollen projektbezogen Diskussionen erstellt werden. Weiterhin sollen die Mitarbeiter eines Projektes zu jeder Diskussion Beiträge verfassen können.
		\subsection{Detail-Beschreibung}
		Eine detaillierte Beschreibung des Funktionsumfangs ist dem Kapitel \ref{sec:Funktionsumfang} - Funktionsumfang auf Seite \pageref {sec:Funktionsumfang} dieses Dokuments zu entnehmen.

	\newpage
	\section{Funktionsumfang}\label{sec:Funktionsumfang}
		\subsection{Ausschluss}
		Da die Realisierung einen definierten zeitlichen Rahmen hat müssen gewisse Aspekte, die man von einer üblichen
		Projektmanagement Plattform erwarten würde, bei der Realisierung ausgeklammert werden.
		\paragraph[Ressourcenplanung]{Zeitliche Ressourcenplanung für ein Projekt:}
		Es wird im fertigen Produkt keinerlei Möglichkeit geben, die Verfügbarkeit einer Ressource innerhalb eines
		Projektes und auch projektübergreifend zu verwalten. Die zeitliche Planung derselben für ein
		Projekt liegt somit im Verantwortungsbereich des Projektleiters, bzw. des betreffenden Mitarbeiters selbst.
		\subsection{Benutzeraktionen}
			\subsubsection{Systembezogen}
				\begin{itemize}
					\item	Registrieren
					\item	Anmelden
					\item	Abmelden
					\item	Projekt erstellen
					\item	Zu einem Projekt eingeladen werden / einem Projekt beitreten
					\item 	Eigene Benutzerdaten ändern
					\item	Ein neues Passwort anfordern
				\end{itemize}
			\subsubsection{Projektbezogen}
			Als Projektmitarbieter: 
			\begin{itemize}
				\item	Aufwand für erledigte Aufgaben zurückmelden
				\item	Dateien hoch- / herrunterladen
				\item 	Bug Tracking
				\begin{itemize}
					\item 	Erfassen
					\item 	Bearbeiten
					\item 	Anhänge hoch- / herunterladen
				\end{itemize}
				\item	Diskussionsthemen erstellen
				\item	Diskussionsbeiträge erfassen
			\end{itemize}
			Als Projektmanager: 
			\begin{itemize}
				\item	{\textit{Alle Aktionen eines Projektmitarbeiters}}
				\item	Arbeitspakete anlegen/bearbeiten
				\begin{itemize}
					\item 	Einzelne Arbeitsschritte anlegen/bearbeiten
					\begin{itemize}
						\item 	Geplante Aufwände erfassen
						\item 	Zuweisen von Ressourcen/Bearbeitern
					\end{itemize}
				\end{itemize}
			\end{itemize}

	\newpage
	\section{Datenmodell}
		\subsection{Datenobjekte}
			\begin{enumerate}
				\item \textbf{Project:} Ein auf der Plattform erfasstes Projekt.
				\item \textbf{User:} Ein im System registrierter Benutzer.
				\item \textbf{Member:} Abbildung der Beziehung zwischen 'User' und 'Project'.
				\item \textbf{Workpackage:} Ein bezüglich eines Projektes geplantes Arbeitspaket.
				\item \textbf{Task:} Ein bezüglich eines Arbeitspaketes geplanter Arbeitsschritt.
				\item \textbf{Processor:} Abbildung der Beziehung zwischen 'User' und 'Task'.
				\item \textbf{Bug:} Ein bezüglich eines Projektes erfasster Fehler.
				\item \textbf{Dataobject:} Eine an ein Projekt oder einen Fehler angehängte Datei.
				\item \textbf{Topic:} Ein bezüglich eines Projektes oder eines Fehlers erstellte Diskussion.
				\item \textbf{Reply:} Ein Beitrag zu einer Diskussion.
			\end{enumerate}
		\subsection{Datenbank Schema}
		Das Datenbankschema ist dem Anhang auf Seite \pageref{Datenbankschema} dieses Dokuments zu entnehmen.

	\newpage
	\section{Qualitätssicherung}
	\subsection{Testen}
	Um die einwandfreie Funktion des Produktes zu garantieren, wird ein Testplan mit hohem Schwerpunkt auf Szenario-Tests erstellt, mit dessen Hilfe das Produkt getestet werden soll.\\ Zur Sicherstellung der Akzeptanz werden außerdem projektfremde Personen aus der Zielgruppe als Tester eingesetzt, indem sie vorgegebene Szenarien am Produkt durchspielen. Die Zielgruppe umfasst:
	\begin{itemize}
		\item Studenten eines Studiengangs mit Bezug zur Informatik
		\item Software-Entwickler mit einer Affinität zur Arbeit in Projekt-Teams
	\end{itemize} 
	\subsection{Dokument Reviews}
	Die Erstellung von projektrelevanten Dokumenten geschieht iterativ, wobei jede neue Version ein Review durch einen oder mehrere Projektmitarbeiter durchlaufen muss. Wer diese Aufgabe übernimmt, ist vom Autor der jeweilig letzten Änderungen zu bestimmen.

	\newpage
	\section{Erzeugnisse}
	Die Erzeugnisse des spezifizierten Projektes setzen sich aus zwei Punkten zusammen:
	\subsection{Das Produkt}
	Die entwickelte Groupware soll auf einem noch zu bestimmenden Webserver lauffähig ausgeliefert werden. Für den produktiven Betrieb soll das Produkt mit einer gängig Datenbank arbeiten. Weiterhin werden die Quelldateien ausgeliefert und auf der gemeinsamen Entwicklungsplattform (siehe Kopfzeile) bereitgestellt.
	\subsection{Technisches Tutorial}
	Als Technische Beschreibung der entwickelten Plattform verwendeter Software und Softwarepakete, sowie der zur Realisierung verwendeten Hilfsmittel. Ziel ist es die Architektur für Aussenstehende nachvollziehbar zu erläutern, sowie die Schnittstellen bezüglich möglicher Erweiterungen zu definieren.
	\newpage
	\section{Technische Daten}
	\subsection{Verwendete Software}
		\begin{itemize}
			\item Ruby 1.9.2
			\item Rails 3.0.3
			\item SQLite 3
			\item NetBeans 6.9.1
			\item Subversion
		\end{itemize}
	\newpage
	\appendix
	\section{Anhang}\label{sec:Anhang}
		\begin{figure}[!ht]
				\includegraphics[]{./Grubyware.png}
			\caption{Datenbankschema}
			\label{Datenbankschema}
		\end{figure}
\end{document}